package ar.com.ctrln.persistence.model.insumo;

import java.util.Set;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;

import ar.com.ctrln.persistence.model.compra.DetalleCompra;
import ar.com.ctrln.persistence.model.proveedor.Proveedor;

@Entity
@Table(name="INSUMO")
public class Insumo {
	
	public static final String TIPO_EQUIPAMIENTO = "Equipamiento";
	public static final String TIPO_ACCESORIO = "Accesorios";

	@Id
	@GeneratedValue
	@Column(name="id_insumo")
	private long id;
	
	@Column
	private String nombre;
	
	@Column
	private String descripcion;
	
	@Column
	private String tipoInsumo;
	
	@Column
	private double precio;
	
	@Column
	private int nivelReposicion;
	
	@Column
	private String unidadMedida;
	
	@Column
	private int stock;
	
	@ManyToOne
	@JoinColumn
	private Proveedor proveedor;
	
	@OneToMany(fetch=FetchType.EAGER)
	@JoinColumn(name = "id_insumo")
	private Set<DetalleCompra> detalles;
	
	
	public Insumo() {
		
	}


	public Insumo(String nombre, String descripcion, String tipoInsumo,
			String unidadMedida, int stock, Proveedor proveedor) {
		super();
		this.nombre = nombre;
		this.descripcion = descripcion;
		this.tipoInsumo = tipoInsumo;
		this.unidadMedida = unidadMedida;
		this.stock = stock;
		this.proveedor = proveedor;
	}
	

	
	
	public double getPrecio() {
		return precio;
	}


	public void setPrecio(double precio) {
		this.precio = precio;
	}


	public long getId() {
		return id;
	}


	public void setId(long id) {
		this.id = id;
	}


	public int getNivelReposicion() {
		return nivelReposicion;
	}


	public void setNivelReposicion(int nivelReposicion) {
		this.nivelReposicion = nivelReposicion;
	}


	public Proveedor getProveedor() {
		return proveedor;
	}


	public void setProveedor(Proveedor proveedor) {
		this.proveedor = proveedor;
	}


	public String getUnidadMedida() {
		return unidadMedida;
	}


	public void setUnidadMedida(String unidadMedida) {
		this.unidadMedida = unidadMedida;
	}


	public String getNombre() {
		return nombre;
	}
	public void setNombre(String nombre) {
		this.nombre = nombre;
	}
	public String getDescripcion() {
		return descripcion;
	}
	public void setDescripcion(String descripcion) {
		this.descripcion = descripcion;
	}
	public String getTipoInsumo() {
		return tipoInsumo;
	}
	public void setTipoInsumo(String tipoInsumo) {
		this.tipoInsumo = tipoInsumo;
	}
	public int getStock() {
		return stock;
	}
	public void setStock(int stock) {
		this.stock = stock;
	}
	@Override
	public String toString() {
		return getNombre();
	}
		
}
